﻿Public Class DahorroPrevio

    Public Shared Function SeleccionarAhorroPrevio(ByVal descEmpresa As String, ByVal DisplaySelect As Boolean, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EahorroPrevio)
        Dim ahorroPrevios As List(Of EahorroPrevio) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevio_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                'cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            ahorroPrevios = New List(Of EahorroPrevio)
                            Dim ahorroPrevio As EahorroPrevio = Nothing
                            Do While dr.Read
                                ahorroPrevio = New EahorroPrevio( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("idAhorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoTotal")), _
                                    dr.GetString(dr.GetOrdinal("fchProgramacion")), _
                                    dr.GetInt32(dr.GetOrdinal("nroCtas")), _
                                    dr.GetInt32(dr.GetOrdinal("correlativo")), _
                                    dr.GetString(dr.GetOrdinal("fchCancelacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoCta")), _
                                    dr.GetInt32(dr.GetOrdinal("estadoAhorroPrevio")), _
                                    dr.GetString(dr.GetOrdinal("sectorista")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                ahorroPrevios.Add(ahorroPrevio)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return ahorroPrevios
    End Function
    Public Shared Function SeleccionarAhorroPrevio_SelXSeparacionVenta(ByVal descEmpresa As String, ByVal DisplaySelect As Boolean, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EahorroPrevio)
        Dim ahorroPrevios As List(Of EahorroPrevio) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevio_selXSeparacionVenta", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            ahorroPrevios = New List(Of EahorroPrevio)
                            Dim ahorroPrevio As EahorroPrevio = Nothing
                            Do While dr.Read
                                ahorroPrevio = New EahorroPrevio( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("idAhorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoTotal")), _
                                    dr.GetString(dr.GetOrdinal("fchProgramacion")), _
                                    dr.GetInt32(dr.GetOrdinal("nroCtas")), _
                                    dr.GetInt32(dr.GetOrdinal("correlativo")), _
                                    dr.GetString(dr.GetOrdinal("fchCancelacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoCta")), _
                                    dr.GetInt32(dr.GetOrdinal("estadoAhorroPrevio")), _
                                    dr.GetString(dr.GetOrdinal("sectorista")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                ahorroPrevios.Add(ahorroPrevio)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return ahorroPrevios
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pAhorroPrevio As EahorroPrevio) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevio_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAhorroPrevio.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAhorroPrevio.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pAhorroPrevio.idSeparacionVenta
                'cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pAhorroPrevio.idCliente
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pAhorroPrevio.nroDocumento
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pAhorroPrevio.EentidadFin.idEntidadFin
                cmd.Parameters.Add("@montoTotal", SqlDbType.Decimal, 15, 2).Value = pAhorroPrevio.montoTotal
                cmd.Parameters.Add("@fchProgramacion", SqlDbType.Char, 10).Value = pAhorroPrevio.fchProgramacion
                cmd.Parameters.Add("@nroCtas", SqlDbType.Int).Value = pAhorroPrevio.nroCtas
                cmd.Parameters.Add("@correlativo", SqlDbType.Int).Value = pAhorroPrevio.correlativo
                cmd.Parameters.Add("@fchCancelacion", SqlDbType.Char, 10).Value = pAhorroPrevio.fchCancelacion
                cmd.Parameters.Add("@montoCta", SqlDbType.Decimal, 15, 2).Value = pAhorroPrevio.montoCta
                cmd.Parameters.Add("@estadoAhorroPrevio", SqlDbType.Int).Value = pAhorroPrevio.estadoAhorroPrevio
                cmd.Parameters.Add("@sectorista", SqlDbType.VarChar, 55).Value = pAhorroPrevio.sectorista
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pAhorroPrevio.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pAhorroPrevio.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pAhorroPrevio As EahorroPrevio) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevio_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAhorroPrevio.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAhorroPrevio.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pAhorroPrevio.idSeparacionVenta
                cmd.Parameters.Add("@idAhorroPrevio", SqlDbType.Int).Value = pAhorroPrevio.idAhorroPrevio
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pAhorroPrevio.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByRef idSeparacionVenta As Integer, ByVal pAhorroPrevio As EahorroPrevio) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevio_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAhorroPrevio.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAhorroPrevio.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = idSeparacionVenta
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pAhorroPrevio.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

    Public Shared Function SeleccionarAhorroPrevioTemporal(ByVal descEmpresa As String, ByVal DisplaySelect As Boolean, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EahorroPrevio)
        Dim ahorroPrevios As List(Of EahorroPrevio) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevioTemp_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                'cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            ahorroPrevios = New List(Of EahorroPrevio)
                            Dim ahorroPrevio As EahorroPrevio = Nothing
                            Do While dr.Read
                                ahorroPrevio = New EahorroPrevio( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idSeparacionVenta")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("idAhorroPrevio")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoTotal")), _
                                    dr.GetString(dr.GetOrdinal("fchProgramacion")), _
                                    dr.GetInt32(dr.GetOrdinal("nroCtas")), _
                                    dr.GetInt32(dr.GetOrdinal("correlativo")), _
                                    dr.GetString(dr.GetOrdinal("fchCancelacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoCta")), _
                                    dr.GetInt32(dr.GetOrdinal("estadoAhorroPrevio")), _
                                    dr.GetString(dr.GetOrdinal("sectorista")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                ahorroPrevios.Add(ahorroPrevio)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return ahorroPrevios
    End Function
    Public Shared Function AñadirTemporal(ByVal descEmpresa As String, ByVal pAhorroPrevio As EahorroPrevio) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevioTemp_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAhorroPrevio.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAhorroPrevio.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pAhorroPrevio.idSeparacionVenta
                'cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pAhorroPrevio.idCliente
                cmd.Parameters.Add("@nroDocumento", SqlDbType.Char, 11).Value = pAhorroPrevio.nroDocumento
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pAhorroPrevio.EentidadFin.idEntidadFin
                cmd.Parameters.Add("@montoTotal", SqlDbType.Decimal, 15, 2).Value = pAhorroPrevio.montoTotal
                cmd.Parameters.Add("@fchProgramacion", SqlDbType.Char, 10).Value = pAhorroPrevio.fchProgramacion
                cmd.Parameters.Add("@nroCtas", SqlDbType.Int).Value = pAhorroPrevio.nroCtas
                cmd.Parameters.Add("@correlativo", SqlDbType.Int).Value = pAhorroPrevio.correlativo
                cmd.Parameters.Add("@fchCancelacion", SqlDbType.Char, 10).Value = pAhorroPrevio.fchCancelacion
                cmd.Parameters.Add("@montoCta", SqlDbType.Decimal, 15, 2).Value = pAhorroPrevio.montoCta
                cmd.Parameters.Add("@estadoAhorroPrevio", SqlDbType.Int).Value = pAhorroPrevio.estadoAhorroPrevio
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pAhorroPrevio.observacion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pAhorroPrevio.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EditarTemporal(ByVal descEmpresa As String, ByVal pAhorroPrevio As EahorroPrevio) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevioTemp_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAhorroPrevio.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAhorroPrevio.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = pAhorroPrevio.idSeparacionVenta
                cmd.Parameters.Add("@idAhorroPrevio", SqlDbType.Int).Value = pAhorroPrevio.idAhorroPrevio
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pAhorroPrevio.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EliminarTemporal(ByVal descEmpresa As String, ByRef idSeparacionVenta As Integer, ByVal pAhorroPrevio As EahorroPrevio) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_ahorroPrevioTemp_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAhorroPrevio.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAhorroPrevio.idEtapa
                cmd.Parameters.Add("@idSeparacionVenta", SqlDbType.Int).Value = idSeparacionVenta
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pAhorroPrevio.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function

End Class
